home *** CD-ROM | disk | FTP | other *** search
/ PC World Interactive 7 / PC World Interactive 7.iso / program / asprog.EXE / SHOWC.ASM < prev    next >
Assembly Source File  |  1996-07-05  |  4KB  |  162 lines

  1. .Model tiny
  2. .Code
  3. .startup
  4. Prog       proc    Far
  5.            push    ds                           ;Save DS
  6.            xor     ax,ax
  7.            push    ax
  8.  
  9.            lea     dx,Offset Cder              ;Coder
  10.            mov     ah,09h
  11.            int     21h
  12.  
  13.            lea     dx,Offset Dmsg               ;File Name Message
  14.            mov     ah,09h
  15.            int     21h
  16.  
  17.            lea     dx,Offset DName              ;Get File Name
  18.            mov     ah,0ah
  19.            mov     si,dx
  20.            mov     byte ptr [si],0dh
  21.            int     21h
  22.            inc     si
  23.            mov     bl,[si]
  24.            sub     bh,bh
  25.            inc     si
  26.            mov     byte ptr[si+bx],0
  27.  
  28.            lea     dx,offset Dname+2            ;Is there file
  29.            mov     ah,4eh
  30.            int     21h
  31.  
  32.            jnc      goon0
  33.  
  34.            lea     dx,Offset HMsg
  35.            mov     ah,09h
  36.            int     21h
  37.            jmp     qex
  38. goon0:
  39.            mov     ax,3d02h                     ;Open File
  40.            int     21h
  41.            Jnc     goon                         ;If Error
  42.  
  43.            lea     dx,Offset H1Msg
  44.            mov     ah,09h
  45.            int     21h
  46.            jmp     qex
  47. goon:
  48.            mov     bx, ax                       ;File Handle->bx
  49.            xor     cx, cx
  50.            xor     dx, dx
  51.            mov     ax, 4202h                    ;Move File Pointer End of File
  52.            int     21h
  53.  
  54.            push    ax
  55.  
  56.            xor     dx, dx
  57.            mov     ax, 4200h
  58.            int     21h                          ;Move File Pointer Begin of File
  59.  
  60.            pop     cx                           ;File Size
  61.  
  62.            push    bx                           ;Save File Handle
  63.  
  64.            mov     ah,4ah                       ;Set Memory
  65.            mov     bx,0ffffh
  66.            int     21h
  67.  
  68.            push    cx                           ;Save File Size
  69.  
  70.            mov     bx,cx                        ;Set Neded Memory
  71.            mov     cl,4
  72.            shr     bx,cl
  73.            shl     bx,1
  74.            push    bx
  75.            inc     bx
  76.  
  77.            mov     ah,4ah
  78.            int     21h
  79.  
  80.            mov     ah,48h
  81.            pop     bx
  82.            int     21h
  83.  
  84.            pop     cx
  85.            pop     bx
  86.  
  87.            mov     ds,ax                        ;Memory address
  88.            xor     dx,dx
  89.  
  90.            mov     ah,3fh                       ;Read File
  91.            int     21h
  92.  
  93.            mov     ah,3eh                       ;Close File
  94.            int     21h
  95.  
  96.            mov     ah,0Fh                       ;Get Screen Mode
  97.            int     10h
  98.            push    ax
  99.  
  100.            mov     ax,0013h                       ;Screen Mode=13
  101.            int     10h
  102.  
  103.            mov     ax,0A000h
  104.            mov     es,ax
  105.            mov     si,80h
  106.            xor     di,di
  107. Resal:
  108.            cmp     byte ptr ds:[si],192
  109.            jae     Norle
  110.            movsb
  111.            Jmp     DevamC
  112. NoRle:
  113.            xor     dx,dx
  114.            mov     dl,byte ptr ds:[si]
  115.            sub     dl,192
  116.            inc     si
  117. Tekrar:
  118.            movsb
  119.            dec     si
  120.            dec     dl
  121.            cmp     dl,0
  122.            ja      tekrar
  123.            inc     si
  124. DevamC:
  125.            cmp     di,0fa00h
  126.            jbe     ResAl
  127.            push    si
  128. Palet:
  129.            shr      word Ptr ds:[si],1
  130.            inc      si
  131.            cmp      si,cx
  132.            jbe      Palet
  133.  
  134.            mov     ax,1012h
  135.            xor     bx,bx
  136.            mov     cx,256
  137.            push    ds
  138.            pop     es
  139.            pop     dx
  140.            int     10h
  141.  
  142.            mov     ah,08h
  143.            int     21h
  144.  
  145.            pop     ax
  146.            xor     ah,ah                       ;Restore Screen Mode
  147.            int     10h
  148. qex:
  149.            mov     ah,4ch
  150.            int     21h
  151. prog       endp
  152.  
  153. Palett     dw      ?
  154. DName      db      ?
  155. Dmsg       db      'Dosya adì.....: ','$'
  156. Cder       db      'Programmed by Halil TA₧',13,10
  157.            db      'Eylül CAT BBS - 90-(212)258-7472',13,10
  158.            db      '────────────────────────────────',13,10,'$'
  159. Hmsg       db      13,10,'Dosya bulunamadì...','$'
  160. H1msg      db      13,10,'Dosya açìlamìyor...','$'
  161.            end
  162.